<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.prime.com.tr/ui"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core">

    <f:view contentType="text/html">

        <p:panel widgetVar="topBar"  style="text-align: right">
            <h:form>
                <h:outputLink id="loginLink" value="javascript:void(0)" onclick="dlg.show()" title="login" rendered="#{!loginBacking.userLoggedIn}">     
                    login 
                </h:outputLink>

                <h:commandLink id="logout" action="#{loginBacking.logout}" rendered="#{loginBacking.userLoggedIn}">     
                    logout 
                </h:commandLink>
            </h:form>
        </p:panel>

        <p:growl id="growl" showDetail="true" life="3000" />  

        <p:dialog id="dialog" header="Login" widgetVar="dlg"> 

            <h:form>  
                <p:focus />
                <h:panelGrid columns="2" cellpadding="5">                      
                    <h:outputLabel value="email: " />  
                    <p:inputText value="#{loginBacking.email}"   
                                 id="email" required="true" label="username" />  

                    <f:facet name="footer">  
                        <p:commandButton value="Login" update="growl"   
                                         actionListener="#{loginBacking.login}"   
                                         oncomplete="handleLoginRequest(xhr, status, args)"/>  
                    </f:facet>  
                </h:panelGrid>  

            </h:form>  
        </p:dialog>  

        <script type="text/javascript">  
            function handleLoginRequest(xhr, status, args) {  
                if(args.validationFailed || !args.loggedIn) {  
                    jQuery('#dialog').parent().effect("shake", { times:3 }, 100);  
                } else {  
                    dlg.hide();  
                    jQuery('#loginLink').fadeOut(); 
                    location.reload(true);
                }  
            }  
        </script>  

    </f:view>
</ui:composition>

